<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class a_produto extends CI_Controller {
   // private $sessao;

    function __construct(){
        parent::__construct();
        $this->load->model("ProdutoModel");
        $this->load->model("CategoriaModel");
        $this->load->model("VizualizacaoModel");
        $this->load->model("FornecedorModel");
        $this->load->model("Selects");
        $this->load->model("Log");

        //Verifica se está logado
        $this->load->helper("auth");
        $this->load->helper("file");
        $this->load->helper("html");
        //$this->sessao = a_logado();
        //restringir();
    }

    public function index($idProduto = "" , $mensagem = "")
    {
        if($idProduto == "") show_error("Erro!");
        $produto = $this->ProdutoModel->getProdutoAutorizado($idProduto);

        if($produto == FALSE) show_error("Este produto n&atilde;o existe.");

        //if($produto->autorizado == false) show_error("Este produto ainda n&atilde;o foi autorizado.");

        if($mensagem == "erro") $mensagem = "\n<div class='compras_erro'>Digite apenas Números</div><br>\n";
        elseif($mensagem == "erro_quantidade") $mensagem = "<div class='compras_erro'>Você selecionou um número maior do que a quantidade disponível!</div><br>";
        else $mensagem = "";

        $fornecedor = $this->FornecedorModel->getFornecedor($produto->idFornecedor);
        if($fornecedor == false) show_error("O Dono deste produto n&atilde;o existe mais");

        $paisCateg = pais_categ($produto->idCategoria);

        $this->load->helper("form");
        $this->load->library("form_validation");

        //Testa se o cliente esta logado para adicionar uma vizualicaç&atilde;o
        if(logado() != false) :
            $user = tipo_usuario();
            if ($user == "usuario" || $user == "clienteFisico" || $user == "clienteJuridico"):
                $usuario = $this->session->userdata("user");
                $insert["idUsuario"] = $usuario->idUsuario;

                $insert["idProduto"] = $produto->idProduto;
                $this->VizualizacaoModel->inserir($insert);
            endif;
        else :
            $insert["idUsuario"] = 0;
            $insert["idProduto"] = $produto->idProduto;
            $this->VizualizacaoModel->inserir($insert);
        endif;

        $this->Log->inserir(tipo_usuario(),  id_tipo_usuario(), "visitou perfil", "produto", $produto->idProduto);

        if(file_exists("fotos/produto/$produto->idProduto.jpg"))
            $foto = site_url()."fotos/produto/$produto->idProduto.jpg";
        elseif(file_exists("fotos/produto/$produto->idProduto.png"))
            $foto = site_url()."fotos/produto/$produto->idProduto.png";
        elseif(file_exists("fotos/produto/$produto->idProduto.gif"))
            $foto = site_url()."fotos/produto/$produto->idProduto.gif";
        else
            $foto = site_url()."images/produtopadrao.jpg";

        $dados = array(
            "titulo" => "Perfil do Produto",
            "produto" => $produto,
            "fornecedor" => $fornecedor,
            "paisCateg" => $paisCateg,
            "mensagem" => $mensagem,
            "foto" => $foto
            );
         if ($produto->tipo == "compra coletiva") $link = "all/a_perfil_produto_cc_view";
         elseif($produto->tipo == "oferta") $link = "all/a_perfil_produto_oferta_view";
         else $link = "all/a_perfil_produto_view";
         $main = array(
            "dados" => $dados,
            "link" => $link,
            );
        $this->load->view("template", $main);
    }

    public function intencao($idProduto = "" , $mensagem = "")
    {
        if($idProduto == "" ) show_404();
        $produto = $this->ProdutoModel->getProdutoIntencao($idProduto);

        if($produto == FALSE) show_error("Este produto n&atilde;o existe.");

        if(tipo_usuario() == "usuario"){
            $cliente = $this->ClienteModel->getCliente($this->sessao->idCliente);
            if(md5($cliente->email) != $produto->intencao_codigo) show_error ("Voce n&atilde;o tem permissão de visualizar este produto");
        }
        else
            if(md5($this->sessao->email) != $produto->intencao_codigo) show_error ("Voce n&atilde;o tem permissão de visualizar este produto");

        //if($produto->autorizado == false) show_error("Este produto ainda n&atilde;o foi autorizado.");

        if($mensagem == "erro") $mensagem = "\nDigite apenas Numeros\n";

        $fornecedor = $this->FornecedorModel->getFornecedor($produto->idFornecedor);
        if($fornecedor == false) show_error("O Fornecedor deste produto n&atilde;o existe mais");

        $paisCateg = pais_categ($produto->idCategoria);

        $this->load->helper("form");
        $this->load->library("form_validation");

        //Testa se o cliente esta logado para adicionar uma vizualicaç&atilde;o
        if(logado() != false) :
            $user = tipo_usuario();
            if ($user == "usuario" || $user == "clienteFisico" || $user == "clienteJuridico"):
                $usuario = $this->session->userdata("user");
                $insert["idUsuario"] = $usuario->idUsuario;

                $insert["idProduto"] = $produto->idProduto;
                $this->VizualizacaoModel->inserir($insert);
            endif;
        else :
            $insert["idUsuario"] = 0;
            $insert["idProduto"] = $produto->idProduto;
            $this->VizualizacaoModel->inserir($insert);
        endif;

        $this->Log->inserir(tipo_usuario(),  id_tipo_usuario(), "visitou perfil", "produto", $produto->idProduto);

        if(file_exists("fotos/produto/$produto->idProduto.jpg"))
            $foto = site_url()."fotos/produto/$produto->idProduto.jpg";
        elseif(file_exists("fotos/produto/$produto->idProduto.png"))
            $foto = site_url()."fotos/produto/$produto->idProduto.png";
        elseif(file_exists("fotos/produto/$produto->idProduto.gif"))
            $foto = site_url()."fotos/produto/$produto->idProduto.gif";
        else
            $foto = site_url()."images/produtopadrao.jpg";

        $dados = array(
            "titulo" => "Perfil do Produto",
            "produto" => $produto,
            "fornecedor" => $fornecedor,
            "paisCateg" => $paisCateg,
            "mensagem" => $mensagem,
            "foto" => $foto
            );
         if ($produto->tipo == "compra coletiva") $link = "all/a_perfil_produto_cc_view";
         elseif($produto->tipo == "oferta") $link = "all/a_perfil_produto_oferta_view";

         $main = array(
            "dados" => $dados,
            "link" => $link,
            );
        $this->load->view("template", $main);
    }

    public function fornecedor($idFornecedor = "", $mensagem = ""){
        if($idFornecedor == "") show_error("ERRO");

        $this->load->helper("form");
        $this->load->library("form_validation");

        $this->form_validation->set_rules('categoria[]', 'Categoria');

        $categoria = $this->input->post("categoria");
        $categoria = $categoria[count($categoria)-1];
        if($categoria != 0)
            $produtos = $this->ProdutoModel->getProdutoFornecedorCategAutorizado($idFornecedor, $categoria);
        else
            $produtos = $this->ProdutoModel->getProdutoFornecedorAutorizado($idFornecedor);

        //$produtos = $this->ProdutoModel->getProdutoFornecedorAutorizado($idFornecedor);
        $lista = "";
        if( $produtos != false ) :
            foreach($produtos->result() as $produto):
                $categoria_p = $this->CategoriaModel->getCategoria($produto->idCategoria);

                $box =  produto_box($produto, $categoria_p->nome);
                if($box != false) $lista .= $box;
            endforeach;
        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\"><div class='subtitulo'>Nenhum produto encontrado</div></td><td><td><td>\n";
            $lista .= "</tr>\n";
        endif;

        if($mensagem == "sucesso") $mensagem = "\nOperaç&atilde;o realizada com Sucesso!\n";
        elseif($categoria == 0 && $mensagem != "") $mensagem = "\n<div class='compras_erro'> Você precisa Selecionar até o final! </div><br>";
        else $mensagem = "";

        $categorias = "";
        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) :
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            endforeach;
        else :
            break;
        endif;

        $dados = array(
            "titulo" => "Produtos do fornecedor $fornecedor->razaoSocial",
             "lista" => $lista,
             "fornecedor" => $fornecedor,
             "categorias" => $categorias,
             "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "all/a_listar_produto_fornecedor_view",
            );

        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"visitou produtos", "fornecedor", $idFornecedor);


        $this->load->view("template",$main);
    }


    public function busca($mensagem = ""){
        $this->load->helper("form");
        $this->load->library("form_validation");
        //print_r($produtos->result());
        $this->form_validation->set_rules('busca', 'Busca', "required");

        if ($this->form_validation->run() == false) {
            redirect("all/a_produto/busca/erro");}

        else{
            //echo $this->input->post("busca");
            //Busca entre o nome dos produtos
            $produtos = $this->ProdutoModel->buscar($this->input->post("busca"));
            $lista = "";
            if( $produtos != false ) :
                foreach($produtos->result() as $produto):
                    $pais = $this->CategoriaModel->getCategoriaAtualPais($produto->idCategoria);
                    $paisCateg = "";
                    if($pais!= false){
                        for($i=count($pais)-1 ; $i>0 ; $i--){
                        $paisCateg .= anchor("all/a_categoria/index/".$pais[$i]->idCategoria, $pais[$i]->nome)."->";
                        }
                    }
                    $paisCateg .= anchor("all/a_produto/categoria/".$pais[0]->idCategoria, $pais[0]->nome);

                    if(file_exists("fotos/produto/$produto->idProduto.jpg"))
                        $foto = array('src'=>site_url()."fotos/produto/$produto->idProduto.jpg", 'width'=>"150", "height" => "125");
                    else
                        $foto = array('src'=>site_url()."images/produtopadrao.jpg", 'width'=>"150","height" => "125");

                    $lista .= "<div class=\"compras_produto_p\" >";
                        $lista .= "<center><div class=\"compras_produto_nome\"> ". anchor("all/a_produto/index/".$produto->idProduto, $produto->nome)."</div></center> ";
                        $lista .= "<div class=\"compras_produto_imagem\" ><center>". anchor("all/a_produto/index/".$produto->idProduto,img($foto))."</center></div> ";
                        $lista .= "<center><div class=\"compras_produto_quant\" > Quantidade disponível: <span>$produto->quantidade</span> </div></center> ";
                        $lista .= "<center><div class=\"compras_produto_prec\" ><span>Preço</span> R$ ".preco_imprime($produto->preco)."</div></center> ";
                        $lista .= "<center><div class=\"compras_produto_cate\" >Categoria ".anchor("all/a_produto/categoria/$produto->idCategoria",$paisCateg)."</div></center> ";
                        $lista .= "<form id=\"form_produto\" name=\"form_produto\" method=\"post\" action=\"#\">";
                        $lista .= "<div class=\"compras_produto_botoes\" ><center>";
                        $lista .= "<input type=\"submit\" name=\"compras_produto_ver_botao\" class=\"compras_produto_ver_botao\" value=\"\" />&nbsp;&nbsp;&nbsp;&nbsp;";
                        //$lista .= "<input type=\"submit\" name=\"compras_produto_adicionar_botao\" class=\"compras_produto_adicionar_botao\" value=\"\" />";
                        //$lista .= "$produto->idFornecedor";
                        $lista .= "</div>";
                        $lista .= "</form>";
                    $lista .= "</div>";
                endforeach;
            else :
                $lista = "<tr>\n\t";
                $lista .= "<td colspan=\"3\">Nenhum produto encontrado<br/></td>\n";
                $lista .= "</tr>\n";
            endif;

            //Busca entre o nome das Categorias
            $categorias = $this->CategoriaModel->buscar($this->input->post("busca"));
            $listaCateg = "";
            if( $categorias != false ) :
                foreach($categorias->result() as $categoria):
                    $pais = $this->CategoriaModel->getCategoriaAtualPais($categoria->idCategoria);
                    //print_r($pais);
                    $paisCateg = "";
                    if($pais != false){
                        for($i=count($pais)-1 ; $i>0 ; $i--){
                        $paisCateg .= anchor("all/a_categoria/index/".$pais[$i]->idCategoria, $pais[$i]->nome)."->";
                        }
                    }
                    if ($this->CategoriaModel->getCategoriaFilhos($categoria->idCategoria) == false)
                        $paisCateg .= anchor("all/a_produto/categoria/$categoria->idCategoria","<b>".$pais[$i]->nome."</b>");
                    else
                        $paisCateg .= anchor("all/a_categoria/index/$categoria->idCategoria","<b>".$pais[$i]->nome."</b>");

                    $listaCateg .= "<tr>\n\t";
                    $listaCateg .= "<td>$paisCateg</td>\n\t";
                endforeach;
            else :
                $listaCateg = "<tr>\n\t";
                $listaCateg .= "<td colspan=\"3\">Nenhuma Categoria encontrado</td>\n";
                $listaCateg .= "</tr>\n";
            endif;

            //busca entre os campos nome, sobrenome e razaoSocial dos fornecedores
            $fornecedores = $this->FornecedorModel->buscar($this->input->post("busca"));
            $listaForn = "";
            if ($fornecedores != false){
                foreach($fornecedores->result() as $fornecedor){
                    $listaForn .= "<tr>\n\t";
                    $listaForn .= "<td>". anchor("all/a_fornecedor/index/".$fornecedor->idFornecedor, $fornecedor->razaoSocial)."</td>\n\t";
                    //$listaForn .= "<td>$fornecedor->razaoSocial</td>\n";
                }
            }
            else {
                $listaForn .= "<tr>\n\t";
                $listaForn .= "<td colspan=\"3\">Nenhum Fornecedor encontrado</td>\n";
                $listaForn .= "</tr>\n";
            }

            //print_r($fornecedores->result());

            if($mensagem != "") $mensagem = "\nOperaç&atilde;o realizada com Sucesso!\n";
            else $mensagem = "";
             $dados = array(
                "titulo" => "Perfil do Produto",
                 "lista" => $lista,
                 "listaCateg" => $listaCateg,
                 "listaForn" => $listaForn,
                 "mensagem" => $mensagem,
                 "busca" => $busca
                );

            $main = array(
                "dados" => $dados,
                "link" => "all/a_listar_produto_busca_view",
                );
            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"buscou", $this->input->post("nome"), "");
            $this->load->view("template", $main);
        }
    }

    public function buscaAvancada($mensagem = ""){
        $this->load->helper("form");
        $this->load->library("form_validation");

        //print_r($produtos->result());

        $categorias = "";

        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) :
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            endforeach;
        else :
            break;
        endif;
        $dados = array(
            "titulo" => "Busca Avançada",
            "mensagem" => $mensagem,
            "categorias" =>$categorias,
            "lista" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "all/a_listar_produto_buscaAvancada_view",
            );


        $this->form_validation->set_rules('nome', 'busca', 'required');
        if ($this->form_validation->run() == false){
            $this->load->view('template', $main);
        }

        else {
            $produtos = $this->ProdutoModel->buscar($this->input->post("nome"));
            $categorias = $this->CategoriaModel->buscar($this->input->post("nome"));
            $lista = "";
            if( $produtos != false  || $categorias != false) :
                foreach($produtos->result() as $produto):
                    
                    $paisCateg = pais_categ($idCategoria);
            
                    $lista .= "<tr>\n\t";
                    $lista .= "<td>$paisCateg</td>\n\t";
                    $lista .= "<td>". anchor("all/a_produto/index/".$produto->idProduto, $produto->nome)."</td>\n\t";
                    $lista .= "<td>$produto->descricao</td>\n\t";
                    $lista .= "<td>$produto->quantidade</td>\n\t";
                endforeach;
            else :
                $lista = "<tr>\n\t";
                $lista .= "<td colspan=\"3\">Nenhum produto encontrado</td>\n";
                $lista .= "</tr>\n";
                endif;

            if($mensagem != "") $mensagem = "\nOperaç&atilde;o realizada com Sucesso!\n";

             $dados = array(
                "titulo" => "Perfil do Produto",
                 "lista" => $lista,
                 "mensagem" => $mensagem
                );

            $main = array(
                "dados" => $dados,
                "link" => "all/a_listar_produto_busca_view",
                );
            $this->load->view("template",$main);
        }
    }

    public function categoria($idCategoria = "" , $mensagem = "")
    {
        $categoria = $this->CategoriaModel->getCategoria($idCategoria);
        if($categoria == false) show_error("Esta categoria n&atilde;o existe");

        if($this->CategoriaModel->getCategoriaFilhos($idCategoria) != false)
            redirect("all/a_categoria/$idCategoria");

       
        $paisCateg = pais_categ($idCategoria);

        //$produtos = $this->ProdutoModel->getProdutoCategoriaAutorizado($idCategoria);
        $produtos = $this->Selects->getProdutoFornecedorByCategoria($idCategoria);
        //  print_r($produtos->result());
        if($produtos == false) {
            $paisCateg = "";
            $lista = "<div class='compras_subtitulo'>Não há produtos Cadastrados</div>";

            $dados = array(
                "titulo" => "",
                "lista" => $lista,
                "mensagem" => $mensagem,
                "paisCateg" => $paisCateg,
                "intencao_box" => ""
            );

            $main = array(
                "dados" => $dados,
                "link" => "all/a_listar_produto_categoria_view",
                );
            $this->load->view("template",$main);
        }
        else{
            if($categoria->idProduto != 0 && $categoria->idProduto != NULL){
                $produto_categ = $this->Selects->getIntencaoProduto(timestamp(), $categoria->idCategoria);
                if($produto_categ != false)
                    $intencao_box = intencao_box($produto_categ);
                //print_r($produto_categ);
            }

            $lista = "";
            $fornecedorAtual = "";
            // echo time();
            foreach($produtos->result() as $campo => $produto):
                if($produto->idFornecedor != $fornecedorAtual){
                    //$lista .= "</tr>";
                    if ($campo != 0)$lista .= "<br clear=\"left\"><br clear=\"left\"><br clear=\"left\">";
                    $img = array('src'=>foto_fornecedor($produto->idFornecedor), 'height'=>"33", "style"=>"border:0px;");
                    $lista .= "<div class=\"compras_produtos_fonecedor\">Produtos encontrados do fornecedor ".anchor("all/a_produto/fornecedor/$produto->idFornecedor",img($img))."</div>";

                }
                $box =  produto_box($produto, $categoria->nome);
                if($box != false) $lista .= $box;

                $fornecedorAtual = $produto->idFornecedor;

            endforeach;

            if($mensagem != "") $mensagem = "\nOperaç&atilde;o realizada com Sucesso!\n";

            $dados = array(
                "titulo" => "",
                "lista" => $lista,
                "mensagem" => $mensagem,
                "paisCateg" => $paisCateg,
                "intencao_box" => $intencao_box
                );

            $main = array(
                "dados" => $dados,
                "link" => "all/a_listar_produto_categoria_view",
                );
            $this->load->view("template",$main);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"visitou produtos", "categoria", $idCategoria);
        }
    }

}